/*
 * @Author: your name
 * @Date: 2021-03-22 19:43:19
 * @LastEditTime: 2021-04-08 16:17:50
 * @LastEditors: lily
 * @Description: In User Settings Edit
 * @FilePath: \js_leetcode\code\125.验证回文串.js
 */
/*
 * @lc app=leetcode.cn id=125 lang=javascript
 *
 * [125] 验证回文串
 */

// @lc code=start
/**
 * @param {string} s
 * @return {boolean}
 */
//  思路：双指针法
//  l指向头部r指向尾部
//  两头的指针向中间靠拢，以相遇为结束条件，若指向的字符不一样则不是回文串

//  复杂度：O(n) O(1)


var isPalindrome = function (s) {
    // 正则
    // let newS = s.replace(/[^a-zA-Z0-9]/ig, '').toLowerCase();
    // return newS === newS.split('').reverse().join('')

    // 预处理
    let str = s.replace(/[^A-Z0-9a-z]/gi, '').toLowerCase();
    let l = 0, r = str.length - 1;
    while (l < r) {
        if (str[l] !== str[r]) return false;
        l++;
        r--;
    }
    return true;

};
// @lc code=end
console.log(isPalindrome(""));

